
package ch.hearc.coursJava.IO.persistence.objet.exemple;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import ch.hearc.coursJava.IO.persistence.objet.SerializeTools;

public class UseEquipe
	{

	/*------------------------------------------------------------------*\
	|*							Methodes Public							*|
	\*------------------------------------------------------------------*/

	public static void main(String[] args) throws Throwable
		{
		main();
		}

	public static void main() throws Throwable
		{
		Homme homme1 = new Homme(111, 11);
		Homme homme2 = new Homme(222, 22);
		List<Homme> listHomme = new ArrayList<Homme>(2);
		listHomme.add(homme1);
		listHomme.add(homme2);
		Equipe equipeSource = new Equipe(listHomme);
		System.out.println(equipeSource);

			//Serialization memoire
			{
			Equipe equipeCopy = serializationMemoire(equipeSource);
			disgnostiquerResultat(equipeSource, equipeCopy);
			}

			//Serialization binaire
			{
			Equipe equipeCopy = serializationBinaire(equipeSource);
			disgnostiquerResultat(equipeSource, equipeCopy);
			}

			//Serialization XML
			{
			Equipe equipeCopy = serializationXML(equipeSource);
			disgnostiquerResultat(equipeSource, equipeCopy);
			}

		}

	/*------------------------------------------------------------------*\
	|*							Methodes Private						*|
	\*------------------------------------------------------------------*/

	private static Equipe serializationXML(Equipe equipeSource) throws Throwable
		{
		File file = new File("equipe.xml");
		SerializeTools.saveXML(file, equipeSource);
		Equipe equipeCopy = (Equipe)SerializeTools.loadXML(file);
		return equipeCopy;
		}

	private static Equipe serializationBinaire(Equipe equipeSource) throws Throwable
		{
		File file = new File("equipe.bin");
		SerializeTools.saveBin(file, equipeSource);
		return (Equipe)SerializeTools.loadBin(file);
		}

	private static void disgnostiquerResultat(Equipe equipeSource, Equipe equipeCopy)
		{
		System.out.println("Bin : " + equipeSource.isEgal(equipeCopy));
		System.out.println("\t->" + equipeCopy);
		}

	private static Equipe serializationMemoire(Equipe equipeSource) throws Throwable
		{
		byte[] array = SerializeTools.toByteArray(equipeSource);
		return (Equipe)SerializeTools.fromByteArray(array);
		}

	}
